package test.test_7_9;

import java.util.regex.Pattern;

/*
编写一个用户注册功能，该功能需要验证用户输入的邮箱和密码是否符合规定的格式。
定义两种不同的异常类型来分别表示邮箱验证失败和密码验证失败的情况。
邮箱验证:要求邮箱中必须包含@ (可以使用String类中提供的成员方法contains(String targetStr))
密码验证:要求密码长度为6位
// 邮箱验证失败异常
EmailValidationException
// 密码验证失败异常
PasswordValidationException
 */
class EmailValidationException extends Exception {
    public EmailValidationException(String message) {

        super(message);
    }
}

class PasswordValidationException extends Exception {
    public PasswordValidationException(String message) {

        super(message);
    }
}

public class UserRegistration {
    public static void main(String[] args) throws PasswordValidationException, EmailValidationException {
        UserRegistration userRegistration = new UserRegistration();
        userRegistration.registerUser("1@13249","123456");
    }

    private static final String EMAIL_PATTERN = ".+@\\..+";

    public void registerUser(String email, String password) throws EmailValidationException, PasswordValidationException {
        // 验证邮箱
        if (!validateEmail(email)) {
            throw new EmailValidationException("邮箱格式错误");
        }

        // 验证密码
        if (!validatePassword(password)) {
            throw new PasswordValidationException("密码长度不足6位");
        }

        // 如果通过验证，继续注册过程...
        System.out.println("注册成功");
    }

    private boolean validateEmail(String email) {

        return Pattern.matches(EMAIL_PATTERN, email);
    }

    private boolean validatePassword(String password) {

        return password.length() >= 6;
    }
}